using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Reflection;
using DA_OOMDALFactory.Properties;

namespace DA_OOMDALFactory
{
   public class ConcreteDALFactory
   {
      /// <summary>
      /// Create AcessoDoUsuarioAoSistema DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete AcessoDoUsuarioAoSistema DAL</returns>
      public static DA_OOMModelIDAL.IAcessoDoUsuarioAoSistemaDAL CreateAcessoDoUsuarioAoSistemaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".AcessoDoUsuarioAoSistemaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IAcessoDoUsuarioAoSistemaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Agencia DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Agencia DAL</returns>
      public static DA_OOMModelIDAL.IAgenciaDAL CreateAgenciaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".AgenciaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IAgenciaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Banco DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Banco DAL</returns>
      public static DA_OOMModelIDAL.IBancoDAL CreateBancoDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".BancoDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IBancoDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Cidade DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Cidade DAL</returns>
      public static DA_OOMModelIDAL.ICidadeDAL CreateCidadeDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".CidadeDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ICidadeDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Cliente DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Cliente DAL</returns>
      public static DA_OOMModelIDAL.IClienteDAL CreateClienteDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".ClienteDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IClienteDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create ContaBancaria DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete ContaBancaria DAL</returns>
      public static DA_OOMModelIDAL.IContaBancariaDAL CreateContaBancariaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".ContaBancariaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IContaBancariaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Convenio DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Convenio DAL</returns>
      public static DA_OOMModelIDAL.IConvenioDAL CreateConvenioDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".ConvenioDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IConvenioDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Empresa DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Empresa DAL</returns>
      public static DA_OOMModelIDAL.IEmpresaDAL CreateEmpresaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".EmpresaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IEmpresaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Endereco DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Endereco DAL</returns>
      public static DA_OOMModelIDAL.IEnderecoDAL CreateEnderecoDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".EnderecoDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IEnderecoDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Estado DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Estado DAL</returns>
      public static DA_OOMModelIDAL.IEstadoDAL CreateEstadoDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".EstadoDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IEstadoDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create LancamentoCancelado DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete LancamentoCancelado DAL</returns>
      public static DA_OOMModelIDAL.ILancamentoCanceladoDAL CreateLancamentoCanceladoDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".LancamentoCanceladoDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ILancamentoCanceladoDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create LancamentoFinanceiro DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete LancamentoFinanceiro DAL</returns>
      public static DA_OOMModelIDAL.ILancamentoFinanceiroDAL CreateLancamentoFinanceiroDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".LancamentoFinanceiroDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ILancamentoFinanceiroDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Telefone DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Telefone DAL</returns>
      public static DA_OOMModelIDAL.ITelefoneDAL CreateTelefoneDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".TelefoneDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ITelefoneDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Usuario DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Usuario DAL</returns>
      public static DA_OOMModelIDAL.IUsuarioDAL CreateUsuarioDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".UsuarioDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IUsuarioDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create TituloFinanceiro DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete TituloFinanceiro DAL</returns>
      public static DA_OOMModelIDAL.ITituloFinanceiroDAL CreateTituloFinanceiroDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".TituloFinanceiroDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ITituloFinanceiroDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create PessoaJuridica DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete PessoaJuridica DAL</returns>
      public static DA_OOMModelIDAL.IPessoaJuridicaDAL CreatePessoaJuridicaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".PessoaJuridicaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IPessoaJuridicaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create PessoaFisica DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete PessoaFisica DAL</returns>
      public static DA_OOMModelIDAL.IPessoaFisicaDAL CreatePessoaFisicaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".PessoaFisicaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IPessoaFisicaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Pessoa DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Pessoa DAL</returns>
      public static DA_OOMModelIDAL.IPessoaDAL CreatePessoaDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".PessoaDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.IPessoaDAL)Assembly.Load(path).CreateInstance(className);
      }
      
      /// <summary>
      /// Create Sacado DAL instance in Package .
      /// </summary>
      /// <returns>interface of concrete Sacado DAL</returns>
      public static DA_OOMModelIDAL.ISacadoDAL CreateSacadoDAL()
      {
         /// Look up the DAL implementation we should be using
         string path = Settings.Default.DALNameSpace;
         string className = path + ".SacadoDAL";
         
         // Using the evidence given in the config file load the appropriate assembly and class
         return (DA_OOMModelIDAL.ISacadoDAL)Assembly.Load(path).CreateInstance(className);
      }
   }
}